package com.admin.rxandroidtest.retrofitRxAndroid;

import android.content.Context;

import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by 吴昶 on 2018/8/15.
 */
public class RetrofitRxAndroidServer {

    private static RetrofitRxAndroidServer retrofitServer;
    private Retrofit retrofit;
    private Context context;

    /**
     * 单例 再 MyApplication 中初始化调用
     * 防止重复多次 新建对象
     * @return
     */
    public static RetrofitRxAndroidServer getInstance(){
        if(retrofitServer==null){
            retrofitServer=new RetrofitRxAndroidServer();
        }
        return retrofitServer;
    }

    /**
     * 初始化 Retrofit
     * 与 RxAndroid 连用
     * @param context
     * @param url
     */
    public void init(Context context,String url){
        this.context=context;
        retrofit=new Retrofit.Builder()
                .baseUrl(url)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build();
    }

    /**
     * 获取接口对象  本例中主要是 BlogServer
     * @param clazz
     * @param <T>
     * @return
     */
    public <T> T createCall(Class<T> clazz){
        return retrofit.create(clazz);
    }


}
